package com.wgh.product.api.client;

import com.wgh.product.api.fallback.ProductTypeClientFallback;
import com.wgh.product.dto.ProductTypeDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 商品类型管理客户端接口
 */
@FeignClient(name = "shop-product", fallback = ProductTypeClientFallback.class)
public interface ProductTypeClient {

    /**
     * 根据ID查询商品类型信息
     */
    @GetMapping("/api/product-type/{id}")
    ProductTypeDTO findById(@PathVariable("id") Long id);

    /**
     * 批量查询商品类型信息
     */
    @GetMapping("/api/product-type/list")
    List<ProductTypeDTO> findListByIds(@RequestParam("ids") List<Long> ids);

    /**
     * 查询所有启用的商品类型
     */
    @GetMapping("/api/product-type/enabled")
    List<ProductTypeDTO> findEnabledList();

    /**
     * 查询商品类型树结构
     */
    @GetMapping("/api/product-type/tree")
    List<ProductTypeDTO> findTree(@RequestParam(value = "status", required = false) Integer status);

    /**
     * 分页查询商品类型列表
     */
    @GetMapping("/api/product-type/page")
    List<ProductTypeDTO> findPage(@RequestParam("page") Integer page, 
                                 @RequestParam("size") Integer size);
}